/*
* 苏州海管家物流科技有限公司（https://www.hgj.com/）.
* 苏公网安备32059002003385号 © 2015-2022 Hgj.com All Rights Reserved. | 苏ICP备15030950号.
* @Date: 2022.08.11.
* @Author
* @Description 企点 - 公用 方法 定义.
**/
import dayjs from 'dayjs'
// import { state } from '@/store/modules/dict'
import { cloneDeep } from 'lodash'
import { IQuery } from "@/typings"

interface IDateObj {
    [key: string]: string;
}

/**
 * @Description 对时间控件 的开始，结束时间进行转换 .
 * __dateRange开头的会被解析，分解成两个参数， 如：
 * __dateRange$createFrom$createTo$YYYY-MM-DD 会被分解成 createFrom 和 createTo ，
 * __dateRange&range[]=createFrom&range[]=createTo&format=YYYY-MM-DD 会被分解成 createFrom 和 createTo，format参数是格式化
 * @Return .
**/
export const convertDateRange = (obj: IQuery) => {
    const { id, value } = obj
    const arr: string[] = id.split('$')
    const defaultFormat = 'YYYY-MM-DD HH:mm:ss'
    const format: string = arr[3] || defaultFormat
    const data: { [key: string]: string } = {}

    if (value.length > 0) {
        [data[arr[1]], data[arr[2]]] = [dayjs(value[0]).format(format), dayjs(value[1]).format(format)]
    } else {
        data[arr[1]] = ''
        data[arr[2]] = ''
    }
    return data
}

export const convertDateRange1 = (param = {}) => {
    let defaultFormat = 'YYYY-MM-DD HH:mm:ss'
    const data:IDateObj = cloneDeep(param)

    if (!data) {
        return data
    }
    // 查出 格式化时间的 标准
    Object.keys(data)?.forEach((item) => {
        if (item?.includes('__dateFormat') && data[item]) {
            defaultFormat = data[item]
            delete data[item]
        }
    })
    // 将数组分割成 独立对象数据
    Object.keys(data)?.forEach((key) => {
        if (key?.includes('__dateRange') && data[key]) {

            if (key?.includes('&')) {
                /* const obj = JSON.parse(key)
                   const format = obj.format || defaultFormat */

                // [data[obj.range[0]], data[obj.range[1]]] = data[key]?.map((item: string) =>  dayjs(item).format(format))

            } else if (key.includes('$')) {
                const arr = key.split('$')

                const format: string = arr[3] || defaultFormat
                console.log('format--', format)

                // [data[arr[1]], data[arr[2]]] = data[key]?.map((item: string) => dayjs(item).format(format))
            }
            delete data[key]
        }
    })

    return data
}


export function isSuccess(result = { code: 200 }) {
    return result?.code === 200
}

/**
 *@Description 将传入的数组字符串转换成数组.
 *  @param {String} arrStr
 *@Return .
**/
export const convertArrStr2Arr = (arrStr = '') => {
    if (!arrStr) {
        return []
    } else if (arrStr[0] !== '[') {
        return [arrStr]
    }
    try {
        const setArr = arrStr.replace(/\[|\]/g, '').split(',').map(item => item.trim())

        return [...new Set(setArr)].filter(item => item !== null)

    } catch (error) {
        console.error(error)
        return []
    }
}

/* 从数据字典获取对应值的label
   export const getLabelByDict = (value, dict_name) => {
       return state?.[dict_name]?.find((item) => item.value == value)?.label
   } */


